package com.zw.pdm.module.craft.mapper;

import com.zw.pdm.entity.basic.Dept;
import com.zw.pdm.entity.com.ComTaskName;
import com.zw.pdm.entity.com.DsnTaskCommon;
import com.zw.pdm.entity.craft.CraMakeDetail;
import com.zw.pdm.entity.craft.CraMakeSheet;
import com.zw.pdm.entity.craft.CraReleaseDetail;
import com.zw.pdm.entity.production.*;
import com.zw.pdm.module.craft.model.CarMakeResultModel;
import com.zw.pdm.module.craft.model.ChuShiHuaModel;
import com.zw.pdm.module.craft.model.ServiceTaskModel;

import java.util.List;

/**
 * @Description:
 * @Author: China.sgl
 * @Date: 2020/8/8 13:28
 */
public interface CraftReleaseMapper {


    /**
     * 按部门查询下边科室
     */
    List<Dept> findSectionByDeptId(Integer pid);
    /**
     * 查询工艺科室
     */
    List<Dept> findCraftSectionByDeptId(Integer pid);
    /**
     *
     * @param serviceTaskModel
     * @return
     */
    List<ServiceTaskModel> findWithCraftQuery(ServiceTaskModel serviceTaskModel);

    /**
     * 通过ID 查询制作件主表
     * @param id
     * @return
     */
    List<CraMakeSheet> selectCraMakeSheetById(Integer id);

    /**
     * 分配后修改主表信息
     * @param craMakeSheet
     * @return
     */
    int updateCraMakeSheet(CraMakeSheet craMakeSheet);

    /**
     * 根据ID查询科室对象
     * @param id
     * @return
     */
    Dept selectDetpSetionName(Integer id);

    /**
     * 分配任务插入分配表数据
     * @param craReleaseDetail
     * @return
     */
    int insertCraReleaseDetail(CraReleaseDetail craReleaseDetail);

    /**
     * 根据部分ID 删除分配表数据
     * @param sheetId
     * @return
     */
    int delCraReleaseDetail(Integer sheetId);

    /**
     * 查询部分分配表
     * @param proId
     * @return
     */
    List<CraReleaseDetail>  selectCtaReleaseDetailAndDsnTaskCommon(Integer proId);

    /**
     * 查询项目分配表
     * @param proId
     * @return
     */
    List<DsnTaskCommon>  selectDsnTaskCommonAndCraReleaseDetail(Integer proId);

    /**
     * 添加数据
     * @param dsnTaskCommon
     * @return
     */
    int addDsnTaskCommon(DsnTaskCommon dsnTaskCommon);

    /**
     * 查询任务名称表
     * @param dictCommonId
     * @return
     */
    List<ComTaskName> selectComtaskNameByDictCommonId(Integer dictCommonId);

    /**
     * 删除项目分配表数据
     * @param dsnTaskCommon
     * @return
     */
    int delDsnTaskCommon(DsnTaskCommon dsnTaskCommon);

    /**
     * 重新分配任务按钮加载项
     * @param sheetId
     * @return
     */

    List<CraReleaseDetail> selTaskList(Integer sheetId);

    /**
     * 获取com_task_name 表中所有工艺任务对象
     * @param commonId
     * @return
     */
    List<ComTaskName> selectCraTaskByCommonId(Integer commonId);
    /**
     * 获取已分配任务所有部分
     * @return
     */
    List<CraMakeSheet> selectMakeSheet();

    /**
     * 获取项目看板视图所有数据
     * @return
     */
    List<ChuShiHuaModel> getVwStatus();

    /**
     * 查询是否存在当前项目的任务
     * @param proId
     * @return
     */

    int selectCountByProId(Integer proId);
}
